vue 快速配置路由动画和缓存 | 您所在的位置:网站首页 › vue 二级路由不缓存 › vue 快速配置路由动画和缓存 |
vue 快速配置路由动画和缓存
前言
在使用 vue 路由动画和缓存时,遇到了一些问题,比如: 正确产生动画; 有条件产生动画,比如 A 页面到 B 页面使用动画,A 到其他页面不使用动画; 有条件缓存,管理缓存 动画和缓存的同时使用在这里把自己能想到的做一个总结。 以下的内容已经写成了一个插件,方便快速配置,并增加了判断前进后退的方法,github 地址: vue-router-cache-animate 路由动画 如何动画当路由切换时,动画的实质是在router-view渲染的节点(curNode)后面添加个下一个路由的节点(nextNode)。 curNode 执行离开动画,nextNode 执行进入动画。由于 curNode 和 nextNode 是兄弟节点,如果要实现右进左出的话,需要添加absolute定位。 /* 进入动画 */ .slide-enter { opacity: 0; transform: translate(100%, 0); } .slide-enter-active, .slide-leave-active { transition: transform 0.2s ease; position: absolute; } /*离开动画*/ .slide-leave-to { transform: translate(-100%, 0); } #app { overflow-x: hidden; overflow-y: auto; }元素右超出视窗会使页面出现横向滚动条,所以需要为父元素添加 overflow:hidden。 当然也可以使用 fixed 定位,不会出现滚动条。 动态过渡根据路由信息动态设置动画效果,比如从a路由到b路由使用左滑效果,从b路由返回a路由使用右滑效果。 export default { watch: { $route(to, from) { const toName = to.name const fromName = from.name if (fromName === 'a' && toName === 'b') { this.transitionName = 'slide-left' } else if |
CopyRight 2018-2019 实验室设备网 版权所有 |